модуль статистика ;; визначити, чи містить список даний елемент (логічний результат інвертується, тоді чи_не_містить), з оновленням Мавки замінити на умову "містить" дія чи_не_містить(вхідний_список, шукоме_значення) результат = так перебрати вхідний_список як елемент якщо елемент == шукоме_значення результат = ні кінець кінець результат кінець дія перевірити_вхідні_дані(назва_функції текст, вхідні_дані щось, дозволяти_не_числа_в_списку логічне = ні) пусто якщо вхідні_дані не є список впасти "статистика.%(назва_функції)(): очікувався список як аргумент." кінець якщо вхідні_дані.довжина() == 0 впасти "статистика.%(назва_функції)(): як аргумент очікувався список, що має щонайменш 1 елемент." кінець якщо дозволяти_не_числа_в_списку == ні перебрати вхідні_дані як елемент якщо елемент не є число впасти "статистика.%(назва_функції)(): дана функція приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець кінець кінець дія середнє_степеневе(вхідні_дані список, степень число) число перевірити_вхідні_дані("середнє_степеневе", вхідні_дані) результат = 0 перебрати вхідні_дані як елемент результат = результат + (елемент**степень) кінець якщо степень < 0 вернути (вхідні_дані.довжина()/результат)**(1/-степень) кінець (результат/вхідні_дані.довжина())**(1/степень) кінець дія середнє_геометричне(вхідні_дані список) число перевірити_вхідні_дані("середнє_геометричне", вхідні_дані) добуток = 1 перебрати вхідні_дані як елемент добуток = добуток * елемент кінець добуток ** (1/вхідні_дані.довжина()) кінець дія середнє_арифметичне(вхідні_дані список) число перевірити_вхідні_дані("середнє_арифметичне", вхідні_дані) середнє_степеневе(вхідні_дані, 1) кінець дія середнє_гармонійне(вхідні_дані список) число перевірити_вхідні_дані("середнє_гармонійне", вхідні_дані) середнє_степеневе(вхідні_дані, -1) кінець дія середнє_квадратичне(вхідні_дані список) число перевірити_вхідні_дані("середнє_квадратичне", вхідні_дані) середнє_степеневе(вхідні_дані, 2) кінець дія середнє_кубічне(вхідні_дані список) число перевірити_вхідні_дані("середнє_кубічне", вхідні_дані) середнє_степеневе(вхідні_дані, 3) кінець дія середнє_розмаху(вхідні_дані список) число перевірити_вхідні_дані("середнє_розмаху", вхідні_дані) сортовано = вхідні_дані.сортувати() (сортовано[0]+сортовано[сортовано.довжина()-1])/2 кінець дія розмах(вхідні_дані список) число перевірити_вхідні_дані("розмах", вхідні_дані) сортовано = вхідні_дані.сортувати() сортовано[сортовано.довжина()-1]-сортовано[0] кінець дія медіана(вхідні_дані список) число перевірити_вхідні_дані("медіана", вхідні_дані) вхідні_дані.сортувати() довжина = вхідні_дані.довжина() якщо довжина % 2 == 1 вернути вхідні_дані[довжина/2-0.5] інакше вернути (вхідні_дані[довжина/2-1]+вхідні_дані[довжина/2])/2 кінець кінець дія низька_медіана(вхідні_дані список) число перевірити_вхідні_дані("низька_медіана", вхідні_дані) вхідні_дані.сортувати() довжина = вхідні_дані.довжина() якщо довжина % 2 == 1 вернути вхідні_дані[довжина/2-0.5] інакше вернути вхідні_дані[довжина/2-1] кінець кінець дія висока_медіана(вхідні_дані список) число перевірити_вхідні_дані("висока_медіана", вхідні_дані) вхідні_дані.сортувати() довжина = вхідні_дані.довжина() якщо довжина % 2 == 1 вернути вхідні_дані[довжина/2-0.5] інакше вернути вхідні_дані[довжина/2] кінець кінець дія мода(вхідні_дані список) число перевірити_вхідні_дані("мода", вхідні_дані, так) унікальні_елементи = [] перебрати вхідні_дані як елемент якщо чи_не_містить(унікальні_елементи, елемент) унікальні_елементи.додати(елемент) кінець кінець максимальна_кількість = 0 мода = пусто перебрати унікальні_елементи як значення кількість = 0 перебрати вхідні_дані як елемент якщо елемент == значення кількість += 1 кінець кінець якщо кількість > максимальна_кількість максимальна_кількість = кількість мода = значення кінець кінець мода кінець дія мультимода(вхідні_дані список) число перевірити_вхідні_дані("мультимода", вхідні_дані, так) унікальні_елементи = [] перебрати вхідні_дані як елемент якщо чи_не_містить(унікальні_елементи, елемент) унікальні_елементи.додати(елемент) кінець кінець максимальна_кількість = 0 мода = [] перебрати унікальні_елементи як значення кількість = 0 перебрати вхідні_дані як елемент якщо елемент == значення кількість += 1 кінець кінець якщо кількість == максимальна_кількість мода.додати(значення) кінець якщо кількість > максимальна_кількість максимальна_кількість = кількість мода = [значення] кінець кінець мода кінець дія міжквартильний_розмах(вхідні_дані список) число перевірити_вхідні_дані("міжквартильний_розмах", вхідні_дані) вхідні_дані = вхідні_дані.сортувати() довжина_даних = вхідні_дані.довжина() якщо довжина_даних % 2 == 0 вернути медіана(вхідні_дані.зрізати(довжина_даних/2, довжина_даних)) - медіана(вхідні_дані.зрізати(0, довжина_даних/2)) інакше вернути медіана(вхідні_дані.зрізати((довжина_даних-1)/2+1, довжина_даних)) - медіана(вхідні_дані.зрізати(0, (довжина_даних-1)/2)) кінець кінець дія дисперсія(вхідні_дані список, чи_вибірка логічне = ні) число перевірити_вхідні_дані("дисперсія", вхідні_дані) якщо чи_вибірка не є логічне впасти "статистика.дисперсія(): як другий аргумент очікувалося логічне значення, не \"%(чи_вибірка)\"." кінець середнє = середнє_арифметичне(вхідні_дані) результат = 0 перебрати вхідні_дані як елемент результат += (елемент-середнє)**2 кінець якщо чи_вибірка результат / (вхідні_дані.довжина()-1) інакше результат / вхідні_дані.довжина() кінець кінець дія стандартне_відхилення(вхідні_дані список, чи_вибірка логічне = ні) число перевірити_вхідні_дані("стандартне_відхилення", вхідні_дані) якщо чи_вибірка не є логічне впасти "статистика.стандартне_відхилення(): як другий аргумент очікувалося логічне значення, не \"%(чи_вибірка)\"." кінець дисперсія(вхідні_дані, чи_вибірка) ** 0.5 кінець дати перевірити_вхідні_дані дати середнє_степеневе, середнє_арифметичне, середнє_геометричне, середнє_гармонійне, середнє_квадратичне, середнє_кубічне дати середнє_розмаху, розмах, міжквартильний_розмах дати медіана, низька_медіана, висока_медіана дати мода, мультимода дати дисперсія, стандартне_відхилення кінець дати статистика